/******************************************************************************
COPYRIGHT 2012   : ATECH
Project          : 
Source File Name : Slave_lin1_apis.h
Group            : SoftWare Team
Author           : 
Date First Issued: 12/18/2012                                                  
******************************************************************************/
#ifndef Slave_lin1_apis_h 
#define Slave_lin1_apis_h

/* #include */
#include "Slave_lin1_syst.h"
#include "Slave_lin1_htype.h"
#include "Slave_lin1_appl.h"

/* Function prototypes */
/* "Slave_lin1_sil1.c" Function prototypes */
extern void   lin1_sys_init(l_u8 baud);
extern l_bool lin1_flg_tst(LIN1_tenFlagType enFlagType, l_flag_handle fff);
extern void   lin1_flg_clr(LIN1_tenFlagType enFlagType, l_flag_handle fff);
extern void   lin1_data_clr(l_flag_handle fff);
extern void   lin1_bytes_rd(l_flag_handle fff, l_u8 u8Num, l_u8 *pu8Data);
extern void   lin1_bytes_wr(l_flag_handle fff, l_u8 u8Num, l_u8 *pu8Data);
extern l_bool lin1_bool_rd(l_signal_bool_handle sss);
extern l_u8   lin1_u8_rd  (l_signal_u8_handle   sss);
extern l_u16  lin1_u16_rd (l_signal_u16_handle  sss);
extern void   lin1_bool_wr(l_signal_bool_handle sss,l_bool v);
extern void   lin1_u8_wr  (l_signal_u8_handle   sss,l_u8   v);
extern void   lin1_u16_wr (l_signal_u16_handle  sss,l_u16  v);
extern l_bool lin1_sys_boGetEvent (LIN1_tenSystemEvent enEvent);
extern void   lin1_sys_vSetEvent  (LIN1_tenSystemEvent enEvent);
extern void   lin1_sys_vClearEvent(LIN1_tenSystemEvent enEvent);
/* "Slave_lin1_sil2.c" Function prototypes */
extern void lin1_api_init(void);
extern l_u8 lin1_checksum(l_u8 *data_ptr,l_u8 num,l_u8 protectedId);
extern void lin1_slave_tick(void);
/* "Slave_lin1_dll1.c" Function prototypes */
extern void lin1_ifc_init(l_u8 baud);
extern void lin1_ifc_UART_switchTo_EXTI(void);
extern void lin1_ifc_EXTI_switchTo_UART(void);
/* "Slave_lin1_dll2.c" Function prototypes */
extern l_u8 lin1_ifc_send_message(void);
extern l_u8 lin1_ifc_receive_message(void);
extern void lin1_ifc_wake_Up(void);
extern void lin1_ifc_goto_sleep(void);
extern l_u8 lin1_ifc_break_action(void);
/* "Master_lin1_dtl1.c" Function prototypes */
extern void lin1_ld_init(void);
extern void lin1_ld_put_raw(l_u8 *pu8PDU);
extern void lin1_ld_tx_from_raw(l_u8 *u8PDU);
extern void lin1_ld_clear_tx_raw(void);
extern void lin1_ld_Enable_tx_raw(void);
extern void lin1_ld_Disable_tx_raw(void);
extern l_bool lin1_ld_tx_raw_Enable(void);
extern LIN1_tenRawTxStatus lin1_ld_raw_tx_status(void);
extern void lin1_ld_get_raw(l_u8 *pu8PDU);
extern void lin1_ld_rx_into_raw(l_u8 *pu8PDU);
extern void lin1_ld_Enable_rx_raw(void);
extern void lin1_ld_Disable_rx_raw(void);
extern l_bool lin1_ld_rx_raw_Enable(void);
extern LIN1_tenRawRxStatus lin1_ld_raw_rx_status(void);


#endif
